package cn.itsource.blog.mapper;


import cn.itsource.blog.domain.Article;
import cn.itsource.blog.dto.ArticleDto;
import cn.itsource.blog.query.ArticleQuery;

import java.util.List;

/**
 * Mapper接口：文章Article
 */
public interface ArticleMapper {
    /**
     * 查询所有
     * @return
     */
    List<Article> findAll();

    /**
     * 查询单个
     * @param id
     * @return
     */
    Article findOne(Long id);

    /**
     * 添加
     * @param article
     */
    void add(Article article);

    /**
     * 修改
     * @param article
     */
    void update(Article article);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);

    /**
     * 批量删除
     * @param ids
     */
    void patchDel();

    /**
     * 分页+高级查询
     * @param articleQuery
     * @return
     */
    List<Article> queryPage(ArticleQuery articleQuery);

    List<ArticleDto> countByArticleType();

    List<ArticleDto> countByTime();

    List<Article> dependencyArticle(Long id);
}
